#ifndef _SPLIT_H_
#define _SPLIT_H_

#include "Configuration.h"
#include "cppjieba/Jieba.hpp"
#include <string>
#include <vector>

using std::string;
using std::vector;

class SplitTool {
  public:
    virtual ~SplitTool() {}; // 虚析构函数
    virtual vector<string> cut(const string &) = 0;
};

class SplitToolCppJieba : public SplitTool {
  public:
    SplitToolCppJieba(Configuration *);
    virtual ~SplitToolCppJieba() {};
    virtual vector<string> cut(const string &) override;

  private:
    Configuration *_conf;
};

#endif